package scr.hotel;

import java.awt.event.ActionListener;
import java.util.*;
import javax.swing.Timer;

import javax.swing.JOptionPane;

public class Hotel {

	static final int tempoF = 54000000;
	
	@SuppressWarnings("deprecation")
	public static void main(String[] args) {

		ActionListener listener = new Operacao();

		// constroi um timer que chama o listner  a cada meia hora
//	      Timer t = new Timer(1800000, listener);
/*	      Timer t = new Timer(1000, listener);
	      t.start();
*/


		
		Cliente eduardo = new Cliente();
		Cliente targino = new Cliente();

		Endereco endereco1 =  new Endereco();
		Endereco endereco2 =  new Endereco();

		
		eduardo.setNome("Eduardo Paz Serafim");
		eduardo.setCelular("99651298");
		eduardo.atribuiCpf("04853022414");
		eduardo.setEmail("eduardops@gmail.com");
		eduardo.setTelefone("32266488");
		eduardo.setEndereco(endereco1);
		

		targino.setNome("Rafael Santos Targino");
		targino.setCelular("88228860");
		targino.atribuiCpf("05334687440");
		targino.setEmail("targinoman@gmail.com");
		targino.setTelefone("32470493");
		targino.setEndereco(endereco2);
		
		endereco1.setBairro("Miramar");
		endereco1.setRua("Hildebrando Tourinho");
		endereco1.setCep("58032080");
		endereco1.setCidade("Joao pessoa");
		endereco1.setCliente(eduardo);
		endereco1.setComplemento("701");
		endereco1.setEstado("PB");
		endereco1.setPais("BRASIL");
		endereco1.setNumero("570");
		
		endereco2.setBairro("Miramar");
		endereco2.setRua("Rui Carneiro");
		endereco2.setCep("58032100");
		endereco2.setCidade("Joao pessoa");
		endereco2.setCliente(targino);
		endereco2.setComplemento("601");
		endereco2.setEstado("PB");
		endereco2.setPais("BRASIL");
		endereco2.setNumero("742");
		
		
		Cliente.saveCliente(eduardo);
		Cliente.saveCliente(targino);
		
/*		LinkedList clientes = (LinkedList)Cliente.listarClientes();

		for(int i=0; i < clientes.size(); i++ )
		{
			System.out.println( clientes.get(i) );
		}
*/

		
/*		LinkedList buscaCliente = (LinkedList)Cliente.buscaPorNome("tati");
		for(int i=0; i < buscaCliente.size(); i++ )
		{
			Cliente cliente = (Cliente) buscaCliente.get(i);
	//		Endereco endereco = cliente.getEndereco();
			System.out.println( cliente );
		//	System.out.println( endereco );
		}
*/
		
	
		Funcionario funcionario = new Funcionario();
		
		funcionario.setLogin("eduardops");
		funcionario.setNome("Eduardo Paz Serafim");
		funcionario.setSenha("123456");
		
		Funcionario funcionario2 = new Funcionario();
		
		funcionario2.setLogin("tatihonorio");
		funcionario2.setNome("Tatiane Cruz de Souza Honorio");
		funcionario2.setSenha("123456");

		Funcionario funcionario3 = new Funcionario();
		
		funcionario3.setLogin("ninguem");
		funcionario3.setNome("Targino Man");
		funcionario3.setSenha("123456");

		
		if( Funcionario.saveFuncionario(funcionario) ) System.out.println("OK");
		else System.out.println("FALHOU");
		
		if( Funcionario.saveFuncionario(funcionario2) ) System.out.println("OK");
		else System.out.println("FALHOU");

		if( Funcionario.saveFuncionario(funcionario3) ) System.out.println("OK");
		else System.out.println("FALHOU");
		
		Funcionario fBuscado;
		
		fBuscado = Funcionario.buscaPorLogin("tatihonorio");
		if (fBuscado != null)
		{
			if( fBuscado.comparaSenha("123456" ) == true)
			{
				System.out.println("LOGIN CORRETO");
			}
			else
			{
				System.out.println("LOGIN INCORRETO");
			}
		}
		else System.out.println("login nao encontrado");
		
/*		funcionario.setNome("Eduardo");
		Funcionario.atualizar(funcionario);
*/	
/*		LinkedList funcionarios = (LinkedList)Funcionario.listarFuncionarios();

		for(int i=0; i < funcionarios.size(); i++ )
		{
			System.out.println( funcionarios.get(i) );
		}

		LinkedList busca = Funcionario.buscaPorNome("e");
		System.out.println(busca.size());
		for(int i=0; i < busca.size(); i++ )
		{
			System.out.println( busca.get(i) );
		}
	*/	
		
	
		Date inicio = new Date();
		Date fim = new Date();

		inicio.setTime(tempoF);
/*		inicio.setSeconds(00);
		inicio.setMinutes(00);
		inicio.setHours(12);
	*/	
		fim.setTime(tempoF);
/*		fim.setSeconds(00);
		fim.setMinutes(00);
		fim.setHours(12);
*/
		
		inicio.setDate(14);
		inicio.setMonth(11);
		inicio.setYear(2006-1900);
		fim.setDate(26);
		fim.setMonth(11);
		fim.setYear(2006-1900);

		
		
		
		
		Quarto quarto1 = new Quarto();
		Quarto quarto2 = new Quarto();
		Quarto quarto3 = new Quarto();
		Quarto quarto4 = new Quarto();
		
		TipoDeQuarto tipo1 = new TipoDeQuarto();
		TipoDeQuarto tipo2 = new TipoDeQuarto();
		TipoDeQuarto tipo3 = new TipoDeQuarto();
		TipoDeQuarto tipo4 = new TipoDeQuarto();
		
		quarto1.setTipo(tipo1);
		quarto4.setTipo(tipo4);
		quarto2.setTipo(tipo2);
		quarto3.setTipo(tipo3);
		tipo1.setQuarto(quarto1);
		tipo4.setQuarto(quarto4);
		tipo2.setQuarto(quarto2);
		tipo3.setQuarto(quarto3);
		
		quarto1.setNumero("101");
		quarto1.setServicoDeQuarto(true);
		quarto1.setAusente(false);
		quarto1.setLimpeza(false);
		quarto1.setNpertube(true);
		
		quarto2.setNumero("102");
		quarto3.setNumero("103");
		quarto4.setNumero("104");
		tipo1.setNcamas(1);
		tipo1.setNpessoas(1);
		tipo1.setTipo(1);
		tipo4.setNcamas(1);
		tipo4.setNpessoas(1);
		tipo4.setTipo(1);
		tipo2.setNcamas(2);
		tipo2.setNpessoas(2);
		tipo2.setTipo(2);
		tipo3.setNcamas(3);
		tipo3.setNpessoas(4);
		tipo3.setTipo(3);
		
		Quarto.saveQuarto(quarto1);
		Quarto.saveQuarto(quarto2);
		Quarto.saveQuarto(quarto3);
		Quarto.saveQuarto(quarto4);
		
		Quarto quarto = Quarto.buscaPorNumero(quarto1.getNumero());
		
		System.out.println(quarto);

		
		Operacao.CheckIn(eduardo, quarto1);
		
		
		Reserva reserva = new Reserva();
		reserva.setInicioReserva(inicio);
		reserva.setFimReserva(fim);

		inicio.setDate(14);
		inicio.setMonth(12-1);
		inicio.setYear(2006-1900);
		fim.setDate(26);
		fim.setMonth(12-1);
		fim.setYear(2006-1900);

		
		LinkedList listagem = Reserva.listarDisponiveis(tipo1, reserva);
/*		for(int i=0; i < listagem.size(); i++ ) 
			System.out.println(listagem.get(i));
*/		if( !listagem.isEmpty() ) Reserva.criarReserva(reserva, (Quarto)listagem.get(0), eduardo);

		inicio.setDate(10);
		inicio.setMonth(11-1);
		inicio.setYear(2006-1900);
		fim.setDate(20);
		fim.setMonth(11-1);
		fim.setYear(2006-1900);
		
		reserva.setInicioReserva(inicio);
		reserva.setFimReserva(fim);
		
		listagem = Reserva.listarDisponiveis(tipo1, reserva);
		if( !listagem.isEmpty() ) Reserva.criarReserva(reserva, (Quarto)listagem.get(0), eduardo);
		
		inicio.setDate(26);
		inicio.setMonth(11-1);
		inicio.setYear(2006-1900);
		fim.setDate(28);
		fim.setMonth(11-1);
		fim.setYear(2006-1900);
		
		reserva.setInicioReserva(inicio);
		reserva.setFimReserva(fim);
		
		listagem = Reserva.listarDisponiveis(tipo1, reserva);
		if( !listagem.isEmpty() ) Reserva.criarReserva(reserva, (Quarto)listagem.get(0), eduardo);
		

		inicio.setDate(25);
		inicio.setMonth(11-1);
		inicio.setYear(2006-1900);
		fim.setDate(1);
		fim.setMonth(12-1);
		fim.setYear(2006-1900);
		
		reserva.setInicioReserva(inicio);
		reserva.setFimReserva(fim);
		
		listagem = Reserva.listarDisponiveis(tipo1, reserva);
		if( !listagem.isEmpty() ) Reserva.criarReserva(reserva, (Quarto)listagem.get(0), eduardo);

		listagem = Reserva.reservasPorCliente(eduardo);
	/*	for(int i=0; i < listagem.size(); i++ ) 
			System.out.println(listagem.get(i));
		*/
		
		 listagem = Reserva.listarReservas();
/*			for(int i=0; i < listagem.size(); i++ ) 
				System.out.println(listagem.get(i));
*/

	     Tempo tempo = new Tempo();
	     
	     
	     Tempo.desligando(tempo, inicio);
	     Tempo.saveTempo(tempo);
	     
	 	Operacao.atualizarAoIniciar();
	     
	/*	int incrementos = Tempo.getDaysPassedSince(inicio);
		System.out.println(incrementos);
*/
	     
			
		
	}
}